/**
 *	gcc 编译时会生成一个名为 a.exe 的程序，我们以前在命令行参数程序中 argv[0] 输入的就是 a.exe
 *	此处采用 gcc 的 -o 命令改变生成的程序文件名，例如以前输入 gcc xxx.c 生成 a.exe 程序文件，现在采用 -o 命令
 *	输入 gcc xxx.c -o u 生成 u.exe 程序文件，那么argv[0][0]的值为 u,同样可将程序文件名通过此方法改为
 *	l.exr, 那么 argv[0][0] 的值为 l
**/

#include <stdio.h>
#include <ctype.h>

int main(int argc, char **argv)
{
	int (*pfun)(int);
	int ch;

	if(argc == 2)
	{
		if(argv[1][1] == 'u')
		{
			pfun = toupper;
		}
		else
		{
			pfun = tolower;
		}
		while((ch = getchar()) != EOF)
		{
			ch = (*pfun)(ch);
			putchar(ch);
		}
	}
	else
	{
		printf("parameter error!\n");
		return -1;
	}
	return 0;
}
